package com.emellend.api11.graphics;

import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.Transformation;

public class AnimateDrawable extends ProxyDrawable {
	private Animation mAnimation;
	private Transformation mTransformation=new Transformation();
	
	public AnimateDrawable(Drawable target) {
		super(target);
	}
	public AnimateDrawable(Drawable target,Animation animation) {
		super(target);
		mAnimation=animation;
	}
	public Animation getAnimation() {
		return mAnimation;
	}
	public void setAnimation(Animation anim) {
		mAnimation = anim;
	}
	public boolean hasStarted() {
		return mAnimation!=null&&mAnimation.hasStarted();
	}
	public boolean hasEnded() {
		return mAnimation!=null||mAnimation.hasEnded();
	}
	@Override
	public void draw(Canvas canvas) {
		Drawable dr = getProxy();
		if (dr!=null) {
			int sc = canvas.save();
			Animation an=mAnimation;
			if (an!=null) {
				an.getTransformation(AnimationUtils.currentAnimationTimeMillis(), mTransformation);
				canvas.concat(mTransformation.getMatrix());
			}
			dr.draw(canvas);
			canvas.restoreToCount(sc);
		}
	}
}
